/*
Problem Description
Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. 
For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 14.
 

Input
The first line of the input contains an integer T(1<=T<=20) which means the number of test cases. 
Then T lines follow, each line starts with a number N(1<=N<=100000), then N integers followed(all the integers are between -1000 and 1000).
 

Output
For each test case, you should output two lines. The first line is "Case #:", 
# means the number of the test case. The second line contains three integers, the Max Sum in the sequence, 
the start position of the sub-sequence, the end position of the sub-sequence. If there are more than one result, output the first one. 
Output a blank line between two cases.
 

Sample Input
2
5 6 -1 5 4 -7
7 0 6 -1 1 -6 7 -5
 

Sample Output
Case 1:
14 1 4

Case 2:
7 1 6

*/
//法一
#include<cstdio>
using namespace std;
#define N 100005
int main(){
	int T;
	int a[N];
	scanf("%d",&T);
	for(int i = 1;i<=T;i++){
	int n,sum=-1005,begin=1,b=0,besti,bestj;
	scanf("%d",&n);
	for(int j=1;j<=n;j++)
		scanf("%d",&a[j]);
	for(int j=1;j<=n;j++)
		{
			if(b>=0) b+=a[j];
			else{b=a[j];begin=j;}
			if(b>sum)
			{
				sum=b;	
				besti=begin;
				bestj=j;
			}		
		}
		printf("Case %d:\n%d %d %d\n",i,sum,besti,bestj );
		if(i!=T){
			printf("\n");
		}
	}

}
//法二
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main(){
	int t;
	int flag = 1;
	int begin=0,end=1;
	cin>>t;
	while(t--){
		int maxSum;
		int a[100000] = {0};
		int len;
		int step =1;
		cin>>len;
		for(int i = 0;i<len;i++){
			cin>>a[i];

		}
		maxSum = -1005;
		int temp = 0;
		for(int k = 0;k<len;k++){
			temp +=a[k];
			if(temp>maxSum){
				maxSum = temp;
				begin = step;
				end = k+1;  
			}
			if(temp<0){
				temp = 0;
				step = k+2;
			}
		}
		printf("Case %d:\n",flag++);
		printf("%d %d %d\n",maxSum,begin,end);
		if(t){
			printf("\n");
		}

	}
	return 0;
}